﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using DECOR.DL.DALC.SAPC.Proxy;
using DECOR.BL.BE;
using System.Data;

namespace DECOR.DL.DALC.SAPC
{
    public class OficinaDALC : IOficinaDALC
    {
        
       public static OficinaDALC Instance() {
            if (_instance == null)
            {
                lock (typeof(OficinaDALC))
                {
                    if (_instance == null)
                    {
                        _instance = new OficinaDALC();
                    }
                }
            }
            return _instance;
        }

        private OficinaDALC() { }
        private static volatile OficinaDALC _instance = null;


        #region IOficinaDALC Members

        public List<GenericBE> listar()
        {
            OficinasProxy oProxy = new OficinasProxy();
            oProxy.Connection = DALC.getConnection;
            if (!oProxy.Connection.IsOpen) { oProxy.Connection.Open(); }
            /* llamando a la función */
            string ex_result = "";
            TVKBTTable tblOficinas = new TVKBTTable();
            oProxy.Zweb_Lista_Oficinas(out ex_result, ref tblOficinas);
            SAP.Connector.SAPConnectionPool.ReturnConnection(oProxy.Connection);
            oProxy.Connection = null;
            /* Manejando el retorno */
            DataTable dt = tblOficinas.ToADODataTable();

            List<GenericBE> lsOficina = new List<GenericBE>();
            foreach (DataRow dr in dt.Rows)
            {
                GenericBE objOficina = new GenericBE();
                objOficina.Codigo = dr["VKBUR"].ToString();
                objOficina.Descripcion = dr["VKBUR"].ToString() + " :: " + dr["BEZEI"].ToString();
                lsOficina.Add(objOficina);
            }
            return lsOficina;
        }

        public List<GenericBE> buscar(string pNombre)
        {
            throw new NotImplementedException();
        }

        public GenericBE leer(string pCodigo)
        {
            throw new NotImplementedException();
        }

        #endregion
    }
}
